package cn.tedu.csmall.product.repo;

import cn.tedu.csmall.product.pojo.VO.BrandListVO;
import cn.tedu.csmall.product.pojo.VO.BrandStandardVO;

import java.util.List;

/**
 * 处理品牌缓存数据的访问接口
 */
public interface IBrandRedisRepository {

    /**
     * 单个品牌数据详情在缓存中的前缀
     */
    String BRAND_ITEM_KEY_PREFIX = "brand:item:";
    /**
     * 多个品牌数据在缓存中的前缀
     */
    String BRAND_LIST_KEY = "brand:list";

    String BRAND_ALL_KEY = "brand:allKeys";

    /**
     * 向缓存中中写入数据
     * @param brandStandardVO 数据详情VO类
     */
    void save(BrandStandardVO brandStandardVO);

    void save(List<BrandListVO> brandListVO);

    void deleteAll();

    /**
     * 从缓存中读取数据详情
     * @param id 数据id
     * @return 数据详情的vo类
     */
    BrandStandardVO get(Long id);

    /**
     * 从缓存中读取全部数据
     * @return
     */
    List<BrandListVO> getAll();

    /**
     * 从缓存中读取指定起始位置的所有数据
     * @param start 读取数据的起始位置
     * @param end 读取数据的结束位置,[赋值为-1,可忽略数据数量,读到数据最后一个]
     * @return 数据信息的集合
     */
    List<BrandListVO> getList(long start,long end);


}
